The invention generally relates to storage virtualization and, more particularly, to split-path storage virtualization systems.
A storage area network (SAN) is a specialized, high-speed computer network that is typically used to attach computer systems or servers (commonly referred to as “hosts”) to back-end storage devices. The primary purpose of the SAN is to transfer data between the hosts and the storage devices. A SAN typically comprises a communication infrastructure that provides physical connections and a management layer that organizes the connections, storage elements, and computer systems, so that data transfer is secure and robust. SANs are typically, although not necessarily, identified with block input/output (I/O) services.
SANs eliminate the traditional dedicated connection between servers and storage elements, as well as any restrictions to the amount of data that a server may access. Instead, a SAN provides the flexibility of networking to enable one server or many heterogeneous servers to share a common storage utility, which may comprise many storage devices, such as, for example, disk, tape, optical, or other storage devices or systems.
The management layer typically comprises a storage services platform that provides storage virtualization to the hosts. Virtualization refers to the abstraction of storage in which representation of a storage unit to the operating system or applications on the host is separated from the actual physical storage on which the information is contained. One common approach to storage virtualization is a split-path architecture in which the responsibilities of data transfer between the host and a storage device (e.g., read or write operations) and control operations are “split”. In a split-path architecture, the data path is typically implemented in high-speed hardware and, therefore, is commonly referred to as a fastpath. The fastpath handles all block READ and WRITE I/O or other data operations at wire speed, while the control path hardware manages control I/O operation. The control path is typically implemented with separate hardware than the fastpath, although the fastpath and the control path hardware interface with each other and may share memory. In operation, control I/O commands from hosts are received by the fastpath and then forwarded to the control path (which may be internal or external to the storage services platform) for appropriate responses based on the state of the logical volume maintained by the platform.
Despite the many advantages and the commercial success of split-path architectures, there remains a need in the art for ways to improve the overall control I/O performance in situations where the aggregate control I/O load provided to the split-path storage services platform may reduce control I/O performance.